本文记录第一课第四周视频中的概念,包括了一些公式推导过程以及课后作业的一些记录。
1. 前后向传播的公式
1.1 各变量的shape
n_x表示输入层大小,n_h表示隐含层大小,n_y表示输出层大小
1.2 前向传播公式
$Z^{[1]} = W^{[1]}X+b^{[1]} \tag{1}$
$a^{[1]} = tanh(Z^{[1]}) \tag{2}$
$Z^{[2]} = W^{[2]}a^{[1]}+b^{[2]} \tag{3}$
$a^{[2]} = sigmoid(Z^{[2]}) \tag{4}$
1.3 反向传播公式
$ da^{[2]} = \large \frac{\partial J}{\partial {a^{[2]}}} = \frac{a^{\small[2]\small}-y}{a^{[2]}(1-a^{[2]})} \tag{6}$
$dZ^{[2]} = \large \frac{\partial J}{\partial {Z^{[2]}}} = \frac{\partial J}{\partial {a^{[2]}}}\frac{\partial {a^{[2]}}}{\partial {Z^{[2]}}} = \small {a^{[2]}-y} \tag{7}$
$dW^{[2]} = \large \frac{\partial J}{\partial {W^{[2]}}} = \frac{\partial J}{\partial {Z^{[2]}}}\frac{\partial {Z^{[2]}}}{\partial {W^{[2]}}} = \small dZ^{[2]}a^{[1]} \tag{8}$
$db^{[2]} = \large \frac{\partial J}{\partial {b^{[2]}}} = \frac{\partial J}{\partial {Z^{[2]}}}\frac{\partial {Z^{[2]}}}{\partial {b^{[2]}}} = \small dZ^{[2]}\tag{9}$
$da^{[1]} = \large \frac{\partial J}{\partial {a^{[1]}}} = \frac{\partial J}{\partial {Z^{[2]}}}\frac{\partial {Z^{[2]}}}{\partial {a^{[1]}}} = \small dZ^{[2]}W^{[2]}\tag{10}$
$dZ^{[1]} = \large \frac{\partial J}{\partial {Z^{[1]}}} = \frac{\partial J}{\partial {a^{[1]}}}\frac{\partial {a^{[1]}}}{\partial {Z^{[1]}}} = \small da^{[1]}(1-(a^{[1]})^{2})\tag{11}$
$dW^{[1]} = \large \frac{\partial J}{\partial {W^{[1]}}} = \frac{\partial J}{\partial {Z^{[1]}}}\frac{\partial {Z^{[1]}}}{\partial {W^{[1]}}} = \small dZ^{[1]}X\tag{12}$
$db^{[1]} = \large \frac{\partial J}{\partial {b^{[1]}}} = \frac{\partial J}{\partial {Z^{[1]}}}\frac{\partial {Z^{[1]}}}{\partial {b^{[1]}}} = \small dZ^{[1]}\tag{13}$
推导过程中,使用到了常用求导公式:
$y=sigmoid(x)’ = \frac{1}{1+e^{-x}}’= y(1-y)$
$y=tanh(x)’ = {\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}}’= (1-y^{2})$
2. 一些约定和技巧
2.1 矩阵的表示
|
|
2.2 激活函数
sigmoid: $a = \frac{1}{1+e^{-z}}$
tanh:$a = \frac{e^z-e^{-z}}{e^z+e^{-z}}$
relu:$a = max(0,z)$
为什么需要使用非线性的激活函数
如果不使用非线性的激活函数,那么神经网络构造出的永远都是输入的线性函数
因为两个线性函数的线性组合 还是线性函数